import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.CsvFileSource;
import org.junit.jupiter.params.provider.MethodSource;
import org.junit.jupiter.params.provider.ValueSource;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import java.util.stream.Stream;

/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 * @date 2023/9/6 13:46
 * JUnit Demo
 */
public class JunitTest {

    public static Stream<Arguments> generator() {
        return Stream.of(Arguments.arguments("小黄", 1),
                Arguments.arguments("七七", 2)
        );
    }

//    static ChromeOptions options = null;
//
//    static WebDriver webDriver = null;
//
//    @BeforeAll
//    static void set() {
//        options = new ChromeOptions();
//        options.addArguments("--remote-allow-origins=*");
//        webDriver = new ChromeDriver(options);
//        webDriver.get("https://www.baidu.com/");
//    }
//
//    @AfterAll
//    static void tear() {
//        webDriver.close();
//    }

//    @BeforeEach
//    void setUp() {
//        System.out.println("setUp");
//    }
//
//    @AfterEach
//    void tearDown() {
//        System.out.println("tearDown");
//    }

    @Test
    void test01() {
        System.out.println("这是 JunitTest 的 test01");
    }

    @Test
    void test02() {
        System.out.println("这是 JunitTest 的 test02");
    }

    @Disabled // 忽略
    @Test
    void test03() {
        Assertions.assertTrue(false);
    }

    // 参数化
    // 单参数
    @ParameterizedTest
    @ValueSource(ints = {1, 2, 3})
    void test04(int num) {
        System.out.println(num);
    }

    // 多参数, 参数类型相同
    @ParameterizedTest
    @CsvFileSource(resources = "test01.csv")
    void test04(String name1, String name2, String name3) {
        System.out.println(name1 + ", " + name2 + ", " + name3);
    }

    // 多参数
    @ParameterizedTest
    @MethodSource("generator")
    void test05(String name, int num) {
        System.out.println(name + " : " + num);
    }
}
